/**
 * Created by muyonghui on 17/3/1.
 */
//使用oracledb 需要安装oracle驱动 而且在我本地环境下 使用node.v6 我装不了oracledb 用的node.v4可以装 并且用只能用v4跑
var oracledb = require('oracledb');
oracledb.autoCommit = true;
oracledb.maxRows = 50000;
var oracleConfig = {
    user          : "xxxx",
    password      : "xxxx",
    connectString : "xxxx"
};

// mysql 语句 例 INSERT INTO MY_USERS(ID,FIRSTNAME,LASTNAME) VALUES (:1, :2, :3) RETURNING FIRSTNAME INTO :4
// bindValue 数组 例 [2, '陈', '二', 1]
function oracledbUtil(mySql, bindValue, calllback) {
    oracledb.getConnection(
        oracleConfig,
        function(err, connection)
        {
            if (err) {
                calllback(err);
                return;
            }
            connection.execute(mySql, bindValue, function(err, result) {
                if (err) {
                    console.error(err.message);
                    calllback(err);
                    doRelease(connection);
                    return;
                }
                // 返回result格式
                // { rows: [ [ '001', '电脑', 'V001', '部门1', '部门2', '1', '调入负责人', '调出负责人' ] ],
                //     resultSet: undefined,
                //     outBinds: undefined,
                //     rowsAffected: undefined,
                //     metaData:
                //     [ { name: 'CAPITAL_ID' },
                //         { name: 'CAPITAL_NAME' },
                //         { name: 'TYPE' },
                //         { name: 'BELONG' },
                //         { name: 'IN_DEP' },
                //         { name: 'ID' },
                //         { name: 'IN_DEP_LEADER' },
                //         { name: 'OUT_DEP_LEAD' } ] }

                calllback(null,result);
                doRelease(connection);
            });
        });
}

exports.oracledbUtil = oracledbUtil;

// connection.execute("SELECT * FROM CAPITAL_ADJUST", [], function(err, result) {
//     if (err) {
//         console.error(err.message);
//         doRelease(connection);
//         return;
//     }
//     console.log(result);
//     doRelease(connection);
// });

// connection.execute("INSERT INTO MY_USERS(ID,FIRSTNAME,LASTNAME) VALUES (:1, :2, :3) RETURNING FIRSTNAME INTO :4",
//     [2, '陈', '二', 1], // bind value for :id
//     function(err, result) {
//     if (err) {
//         console.log(err);
//         return;
//     }
//     console.log(JSON.parse(result));
//         doRelease(connection);
//
// });

// connection.execute(
//     "create table CAPITAL_ADJUST(CAPITAL_ID    VARCHAR2(10),CAPITAL_NAME  VARCHAR2(50),TYPE          VARCHAR2(10),BELONG        VARCHAR2(50),IN_DEP        VARCHAR2(50),ID            VARCHAR2(10) not null,IN_DEP_LEADER VARCHAR2(50),OUT_DEP_LEAD  VARCHAR2(50))",
//      [],  // bind value for :id
//     function(err, result)
//     {
//         if (err) {
//             console.error(err.message);
//             doRelease(connection);
//             return;
//         }
//         console.log(result);
//         doRelease(connection);
//     });
// connection.execute(
//     "INSERT INTO CAPITAL_ADJUST(ID,CAPITAL_ID,CAPITAL_NAME,TYPE,BELONG,IN_DEP,IN_DEP_LEADER,OUT_DEP_LEAD) VALUES (:1, :2, :3, :4,:5,:6,:7,:8)",
//      [1, '001', '电脑', 'V001', '部门1', '部门2', '调入负责人', '调出负责人'],  // bind value for :id
//     function(err, result)
//     {
//         if (err) {
//             console.error(err.message);
//             doRelease(connection);
//             return;
//         }
//         console.log(result);
//         doRelease(connection);
//     });


function doRelease(connection)
{
    connection.close(
        function(err) {
            if (err)
                console.error(err.message);
        });
}